/**
 * Classe che implementa la classe astratta GestoreTerminaliPortatili permette di
 * gestire fisicamente un singolo ordine
 * 
 * @author Lorenza Brusini, Marco Jerome Gasparrini, Francesca Magistrelli
 * @version 07/2012
 * 
 */

package jflsoft.classi;

import java.util.HashMap;
import java.util.Map;
import jflsoft.classi.Bibita;

public class OrdiniBarista extends GestoreTerminaliPortatili {
    
    private int prioritaAtt;
    private int numServizio;
    private Map<Integer,Bibita[]> ordini;
    
    public OrdiniBarista() {

        this.prioritaAtt = 1;
        this.numServizio = 1;
        this.ordini = new HashMap<Integer,Bibita[]>();
       
    }

    public int getPrior() {
        
        return this.prioritaAtt;
    
    }
    
    public int getNumServ() {
        
        return this.numServizio;
    
    }
    
    public void addOrdine(Bibita[] bib, int prior) {
        
        System.out.println("Aggiunto ordine con priorità "+prior);
        this.ordini.put(prior, bib);
        this.prioritaAtt++;
    
    }
    
    public void deleteOrdine(int prior) {
        
        this.ordini.remove(prior);
    
    }
    
    public void skipOrdine(){
    
        numServizio++;
    
    }
    
    public Bibita[] getOrdine(int prior) {
        
        return this.ordini.get(prior);
    
    }
    
    public void viewCurrentOrdine() {
        
        System.out.println(Bibita.ArrayToString(ordini.get(numServizio)));
    
    }
    
    public String printOrdini() {
       
        String elenco = "";
        for(int i=numServizio;i<prioritaAtt;i++) {
            
            elenco += ordini.get(i);
        
        }
        
        return elenco;
    }
    
}

